//
// Created by sjjmw on 2/23/2022.
//

#pragma clang diagnostic push
#pragma ide diagnostic ignored "EndlessLoop"
#ifndef LEETCODE__17_H
#define LEETCODE__17_H

//todo
// 假设有k个人质和k个绑匪围成一圈。人质的编号从1到k，绑匪的编号从k+1到2k。
// 从编号1开始，每次从其中选出第m个人(隔m-1选出一人)出列。
// 希望求出m的最小值，使得最先出列的k个人都是绑匪，即都是编号从k+1到2k的人。
#include "iostream"
#include "vector"
#include "unordered_map"
bool is_huiwen(int a){
    int a_bak=a;
    int wk=1;
    while(a){
        a/=10;
        wk*=10;
    }
    wk/=10;
    a=a_bak;
    while(wk>1){
        int head=a/wk;
        int rear=a%10;
        if(head!=rear){
            return false;
        }
        a=a%wk;
        a/=10;
        wk/=100;

    }
    return true;
}
void mirror_add(int & num){
    int inv=0,a=num;
    while(a){
        inv+=a%10;
        a/=10;
        inv*=10;
    }
    inv/=10;
    a=num;
    num=num+inv;
    printf("%d+%d=%d\n",a,inv,num);
}
int main() {

    int a;
    while (std::cin >> a) {
        if(a==0){
            continue;
        }
        mirror_add(a);
        while(!is_huiwen(a)){
            mirror_add(a);
        }
    }
//    while(1){}
    return 0;
}

#endif //LEETCODE__17_H

#pragma clang diagnostic pop